package com.example.springboot.ytest.ytest;

class ReloadTest {
    public void fun(){
        this.funInner();
    }

    public void funInner(){
        System.out.println("funInner");
    }
}

/**
 * @author yeyi
 * @date 2020-02-21
 **/
public class ReloadSonTest extends ReloadTest{

    @Override
    public void funInner(){
        System.out.println("ReloadSonTest::funInner");
    }

    public static void main(String[] args) {
        ReloadTest reloadTest = new ReloadTest();
        reloadTest.fun(); // 调用父类方法

        reloadTest = new ReloadSonTest();
        reloadTest.fun(); // 调用子类方法

        ReloadSonTest sonTest = new ReloadSonTest();
        sonTest.fun(); // 调用子类方法

        // 结论：看实际类是谁就用谁的方法，不管声明
    }
}
